package com.wali.common.ccp.exception;


import com.wali.common.enums.ErrorCodeEnum;

/**
 * 异常类
 *
 * @author wali
 * @version [版本号, 2014年8月22日]
 */
public class CcpException extends RuntimeException {

    /**
     * code enum
     */
    private Enum<?> errorCode;

    /**
     * exception enum
     */
    private ICcpErrorCode exception;

    /**
     * <默认构造函数>
     */
    public CcpException() {
        super(ErrorCodeEnum.ERROR_INTERNAL_CODE.name());
        errorCode = ErrorCodeEnum.ERROR_INTERNAL_CODE;
    }

    /**
     * 通过异常code和异常信息构造异常
     */

    public CcpException(Enum<?> code, Exception cause) {
        super(code.toString(), cause);
        errorCode = code;
    }

    /**
     * 通过异常code构造异常 <默认构造函数>
     */
    public CcpException(ICcpErrorCode exception) {
        this.exception = exception;
    }

    /**
     * @param
     * @return
     * @throws
     * @Title getException
     * @Description 获得异常
     */
    public ICcpErrorCode getException() {
        return exception;
    }

    /**
     * @param
     * @return
     * @throws
     * @Title
     * @Description 获得异常详细信息
     */
    protected String getDetail(Throwable e) {
        return e.getStackTrace()[0].toString();
    }
}
